2020IT30
題目希望將傳入的矩陣變成轉置矩陣
input1= [
[1,2,3],
[4,5,6],
[7,8,9]
]
output1= [
[1,4,7],
[2,5,8],
[3,6,9]
]
input2= [
[1,2,3],
[4,5,6]
]
output2= [
[1,4],
[2,5],
[3,6]
]
準備好 row (層數) 與 column(一層中有幾個元素)
在 column 迴圈 (大迴圈) 把空陣列推進 result 為之後轉置好的元素保留空間
在 row 迴圈以 ary[j][i]取值,在交換 row 與 column 放進 result 中
在測試中以字串形式比較 function 產出的結果與 output 符不符合
input1= [
[1,2,3],
[4,5,6],
[7,8,9]
]
output1= [
[1,4,7],
[2,5,8],
[3,6,9]
]
input2= [
[1,2,3],
[4,5,6]
]
output2= [
[1,4],
[2,5],
[3,6]
]
function transpose(ary){
row = ary.length
column = ary[0].length
result = []
for(let i=0; i<column;i++){
result.push([])
for(let j=0; j< row; j++){
result[i][j] = ary[j][i]
}
}
return result
}
function expect(a,b){
console.log(JSON.stringify(a) == JSON.stringify(b))
}
expect(transpose(input1),output1)
expect(transpose(input2),output2)
在較新的程式語言或為了統計,數據相關領域設計出的程式語言都有內建轉置矩陣的方法 (ex. python, R ...),目前我還沒有找到 JavaScript 有無這個方法,所以只能用迴圈重新排列
今天到此為止,有任何問題請在下方留言或透過email、GitHub聯絡我,感謝閱讀
Daily kitty